home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / answers / rec / puzzles / archive / probability < prev    next >
Text File  |  1993-08-17  |  50KB  |  1,334 lines

  1. Newsgroups: rec.puzzles,news.answers,rec.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uunet!questrel!chris
  3. From: chris@questrel.com (Chris Cole)
  4. Subject: rec.puzzles Archive (probability), part 31 of 35
  5. Message-ID: <puzzles/archive/probability_745653851@questrel.com>
  6. Followup-To: rec.puzzles
  7. Summary: This is part of an archive of questions
  8.  and answers that may be of interest to
  9.  puzzle enthusiasts.
  10.  Part 1 contains the index to the archive.
  11.  Read the rec.puzzles FAQ for more information.
  12. Sender: chris@questrel.com (Chris Cole)
  13. Reply-To: archive-comment@questrel.com
  14. Organization: Questrel, Inc.
  15. References: <puzzles/archive/Instructions_745653851@questrel.com>
  16. Date: Wed, 18 Aug 1993 06:06:50 GMT
  17. Approved: news-answers-request@MIT.Edu
  18. Expires: Thu, 1 Sep 1994 06:04:11 GMT
  19. Lines: 1312
  20. Xref: senator-bedfellow.mit.edu rec.puzzles:25020 news.answers:11540 rec.answers:1940
  21.  
  22. Archive-name: puzzles/archive/probability
  23. Last-modified: 17 Aug 1993
  24. Version: 4
  25.  
  26.  
  27. ==> probability/amoeba.p <==
  28. A jar begins with one amoeba.  Every minute, every amoeba
  29. turns into 0, 1, 2, or 3 amoebae with probability 25%
  30. for each case ( dies, does nothing, splits into 2, or splits 
  31. into 3).  What is the probability that the amoeba population
  32. eventually dies out?
  33.  
  34. ==> probability/amoeba.s <==
  35. If p is the probability that a single amoeba's descendants will die
  36. out eventually, the probability that N amoebas' descendents will all
  37. die out eventually must be p^N, since each amoeba is independent of
  38. every other amoeba.  Also, the probability that a single amoeba's
  39. descendants will die out must be independent of time when averaged
  40. over all the possibilities.  At t=0, the probability is p, at t=1 the
  41. probability is 0.25(p^0+p^1+p^2+p^3), and these probabilities must be
  42. equal.  Extinction probability p is a root of f(p)=p.  In this case,
  43.  p = sqrt(2)-1.
  44.  
  45. The generating function for the sequence P(n,i), which gives the
  46. probability of i amoebas after n minutes, is f^n(x), where f^n(x) ==
  47. f^(n-1) ( f(x) ), f^0(x) == x .  That is, f^n is the nth composition
  48. of f with itself.
  49.  
  50. Then f^n(0) gives the probability of 0 amoebas after n minutes, since
  51. f^n(0) = P(n,0). We then note that:
  52.  
  53.     f^(n+1)(x) = ( 1 + f^n(x) + (f^n(x))^2 + (f^n(x))^3 )/4
  54.  
  55. so that if f^(n+1)(0) -> f^n(0) we can solve the equation.
  56.  
  57. The generating function also gives an expression for the expectation
  58. value of the number of amoebas after n minutes. This is d/dx(f^n(x))
  59. evaluated at x=1. Using the chain rule we get f'(f^(n-1)(x))*d/dx(f^(n-1)(x))
  60. and since f'(1) = 1.5  and f(1) = 1, we see that the result is just
  61. 1.5^n, as might be expected.
  62.  
  63. ==> probability/apriori.p <==
  64. An urn contains one hundred white and black balls.  You sample one hundred
  65. balls with replacement and they are all white.  What is the probability
  66. that all the balls are white?
  67.  
  68. ==> probability/apriori.s <==
  69. This question cannot be answered with the information given.
  70.  
  71. In general, the following formula gives the conditional probability
  72. that all the balls are white given you have sampled one hundred balls
  73. and they are all white:
  74.  
  75.     P(100 white | 100 white samples) =
  76.  
  77.             P(100 white samples | 100 white) * P(100 white) 
  78.         -----------------------------------------------------------
  79.         sum(i=0 to 100) P(100 white samples | i white) * P(i white)
  80.  
  81. The probabilities P(i white) are needed to compute this formula.  This
  82. does not seem helpful, since one of these (P(100 white)) is just what we
  83. are trying to compute.  However, the following argument can be made:
  84. Before the experiment, all possible numbers of white balls from zero to
  85. one hundred are equally likely, so P(i white) = 1/101.  Therefore, the
  86. odds that all 100 balls are white given 100 white samples is:
  87.  
  88.     P(100 white | 100 white samples) =
  89.  
  90.         1 / ( sum(i=0 to 100) (i/100)^100 ) =
  91.  
  92.         63.6%
  93.  
  94. This argument is fallacious, however, since we cannot assume that the urn
  95. was prepared so that all possible numbers of white balls from zero to one
  96. hundred are equally likely.  In general, we need to know the P(i white)
  97. in order to calculate the P(100 white | 100 white samples).  Without this
  98. information, we cannot determine the answer.
  99.  
  100. This leads to a general "problem": our judgments about the relative
  101. likelihood of things is based on past experience.  Each experience allows
  102. us to adjust our likelihood judgment, based on prior probabilities.  This
  103. is called Bayesian inference.  However, if the prior probabilities are not
  104. known, then neither are the derived probabilities.  But how are the prior
  105. probabilities determined?  For example, if we are brains in the vat of a
  106. diabolical scientist, all of our prior experiences are illusions, and
  107. therefore all of our prior probabilities are wrong.
  108.  
  109. All of our probability judgments indeed depend upon the assumption that
  110. we are not brains in a vat.  If this assumption is wrong, all bets are
  111. off.
  112.  
  113. ==> probability/bayes.p <==
  114. One urn contains black marbles, and the other contains white or black
  115. marbles with even odds.  You pick a marble from an urn; it is black;
  116. you put it back; what are the odds that you will draw a black marble on
  117. the next draw?  What are the odds after n black draws?
  118.  
  119. ==> probability/bayes.s <==
  120. Every time you draw a black marble, you throw out (from your
  121. probability space) half of those possible urns that contain both
  122. colors.  So you have 1/2^n times as many ways to have a white marble in
  123. the urn after n draws, all black, as at the start.  But you have
  124. exactly the same number of ways to have both marbles black.  The
  125. numbers (mixed cases vs. all-black cases) go as 1:1, 1:2, 1:4, 1:8,...
  126. and the chance of having a white marble in the urn goes as 1/2, 1/3,
  127. 1/5, 1/9, ..., 1/(1+2^(n-1)), hence the odds of drawing a white marble
  128. on the nth try after n-1 consecutive drawings of black are
  129.  
  130. 1/4    the first time
  131. 1/6    the second time
  132. 1/10   the third time
  133. ...
  134. 1/(2+2^n)  the nth time
  135.  
  136. ==> probability/birthday/line.p <==
  137. At a movie theater, the manager announces that they will give a free ticket
  138. to the first person in line whose birthday is the same as someone who has
  139. already bought a ticket.  You have the option of getting in line at any
  140. time.  Assuming that you don't know anyone else's birthday, that birthdays
  141. are distributed randomly throughtout the year, etc., what position in line
  142. gives you the greatest chance of being the first duplicate birthday?
  143.  
  144. ==> probability/birthday/line.s <==
  145. Suppose you are the Kth person in line.  Then you win if and only if the
  146. K-1 people ahead all have distinct birtdays AND your birthday matches
  147. one of theirs.  Let 
  148.  
  149. A = event that your birthday matches one of the K-1 people ahead
  150. B = event that those K-1 people all have different birthdays
  151.  
  152. Then 
  153.  
  154. Prob(you win) = Prob(B) * Prob(A | B)
  155.  
  156. (Prob(A | B) is the conditional probability of A given that B occurred.)
  157.  
  158. Now let P(K) be the probability that the K-th person in line wins,
  159. Q(K) the probability that the first K people all have distinct
  160. birthdays (which occurs exactly when none of them wins).  Then
  161.  
  162. P(1) + P(2) + ... + P(K-1) + P(K) = 1 - Q(K)
  163. P(1) + P(2) + ... + P(K-1)        = 1 - Q(K-1)
  164.  
  165. P(K) = Q(K-1) - Q(K)   <--- this is what we want to maximize.
  166.  
  167. Now if the first K-1 all have distinct birthdays, then assuming
  168. uniform distribution of birthdays among D days of the year,
  169. the K-th person has K-1 chances out of D to match, and D-K+1 chances
  170. not to match (which would produce K distinct birthdays).  So 
  171.  
  172. Q(K) = Q(K-1)*(D-K+1)/D = Q(K-1) - Q(K-1)*(K-1)/D
  173. Q(K-1) - Q(K) = Q(K-1)*(K-1)/D = Q(K)*(K-1)/(D-K+1)
  174.  
  175. Now we want to maximize P(K), which means we need the greatest K such
  176. that P(K) - P(K-1) > 0.  (Actually, as just given, this only
  177. guarantees a local maximum, but in fact if we investigate a bit
  178. farther we'll find that P(K) has only one maximum.)
  179. For convenience in calculation let's set K = I + 1.  Then
  180.  
  181. Q(I-1) - Q(I) = Q(I)*(I-1)/(D-I+1)
  182. Q(I) - Q(I+1) = Q(I)*I/D
  183.  
  184. P(K) - P(K-1) = P(I+1) - P(I)
  185.               = (Q(I) - Q(I+1)) - (Q(K-2) - Q(K-1))
  186.               = Q(I)*(I/D - (I-1)/(D-I+1))
  187.  
  188. To find out where this is last positive (and next goes negative), solve
  189.  
  190. x/D - (x-1)/(D-x+1) = 0
  191.  
  192. Multiply by D*(D+1-x) both sides:
  193.  
  194. (D+1-x)*x - D*(x-1) = 0
  195. Dx + x - x^2 - Dx + D = 0
  196. x^2 - x - D = 0
  197.  
  198. x = (1 +/- sqrt(1 - 4*(-D)))/2    ... take the positive square root
  199.   = 0.5 + sqrt(D + 0.25)
  200.  
  201. Setting D=365 (finally deciding how many days in a year!),
  202.  
  203. desired I = x = 0.5 + sqrt(365.25) = 19.612 (approx).
  204.  
  205. The last integer I for which the new probability is greater then the old
  206. is therefore I=19, and so K = I+1 = 20.  You should try to be the 20th
  207. person in line.
  208.  
  209. Computing your chances of actually winning is slightly harder, unless
  210. you do it numerically by computer.  The recursions you need have already
  211. been given.
  212.  
  213. -- David Karr (karr@cs.cornell.edu)
  214.  
  215.  
  216.  
  217.  
  218. ==> probability/birthday/same.day.p <==
  219. How many people must be at a party before you have even odds or better
  220. of two having the same bithday (not necessarily the same year, of course)?
  221.  
  222. ==> probability/birthday/same.day.s <==
  223. 23.
  224.  
  225. See also:
  226.     archive entry "coupon"
  227.  
  228. ==> probability/cab.p <==
  229. A cab was involved in a hit and run accident at night.  Two cab companies,
  230. the Green and the Blue, operate in the city.  Here is some data:
  231.  
  232.     a)  Although the two companies are equal in size, 85% of cab 
  233. accidents in the city involve Green cabs and 15% involve Blue cabs.
  234.  
  235.     b)  A witness identified the cab in this particular accident as Blue.
  236. The court tested the reliability of the witness under the same circumstances
  237. that existed on the night of the accident and concluded that the witness 
  238. correctly identified each one of the two colors 80% of the time and failed
  239. 20% of the time.
  240.  
  241. What is the probability that the cab involved in the accident was 
  242. Blue rather than Green?
  243.  
  244. If it looks like an obvious problem in statistics, then consider the
  245. following argument:
  246.  
  247. The probability that the color of the cab was Blue is 80%!  After all,
  248. the witness is correct 80% of the time, and this time he said it was Blue!
  249.  
  250. What else need be considered?  Nothing, right?
  251.  
  252. If we look at Bayes theorem (pretty basic statistical theorem) we 
  253. should get a much lower probability.  But why should we consider statistical
  254. theorems when the problem appears so clear cut?  Should we just accept the 
  255. 80% figure as correct?
  256.  
  257. ==> probability/cab.s <==
  258. The police tests don't apply directly, because according to the
  259. wording, the witness, given any mix of cabs, would get the right
  260. answer 80% of the time.  Thus given a mix of 85% green and 15% blue
  261. cabs, he will say 20% of the green cabs and 80% of the blue cabs are
  262. blue.  That's 20% of 85% plus 80% of 15%, or 17%+12% = 29% of all the
  263. cabs that the witness will say are blue.  Of those, only 12/29 are
  264. actually blue.  Thus P(cab is blue | witness claims blue) = 12/29.
  265. That's just a little over 40%.
  266.  
  267. Think of it this way... suppose you had a robot watching parts on a
  268. conveyor belt to spot defective parts, and suppose the robot made a
  269. correct determination only 50% of the time (I know, you should
  270. probably get rid of the robot...).  If one out of a billion parts are
  271. defective, then to a very good approximation you'd expect half your
  272. parts to be rejected by the robot.  That's 500 million per billion.
  273. But you wouldn't expect more than one of those to be genuinely
  274. defective.  So given the mix of parts, a lot more than 50% of the
  275. REJECTED parts will be rejected by mistake (even though 50% of ALL the
  276. parts are correctly identified, and in particular, 50% of the
  277. defective parts are rejected).
  278.  
  279. When the biases get so enormous, things starts getting quite a bit
  280. more in line with intuition.
  281.  
  282. For a related real-life example of probability in the courtroom see
  283. People v. Collins, 68 Cal 2d319 (1968).
  284.  
  285. ==> probability/coupon.p <==
  286. There is a free gift in my breakfast cereal. The manufacturers say that
  287. the gift comes in four different colors, and encourage one to collect
  288. all four (& so eat lots of their cereal). Assuming there is an equal
  289. chance of getting any one of the colors,  what is the expected number
  290. of boxes I must consume to get all four?  Can you generalise to n
  291. colors and/or unequal probabilities?
  292.  
  293. ==> probability/coupon.s <==
  294. The problem is well known under the name of "COUPON COLLECTOR PROBLEM".
  295. The answer for n equally likely coupons is
  296. (1)        C(n)=n*H(n)    with H(n)=1+1/2+1/3+...+1/n.
  297. In the unequal probabilities case, with p_i the probability of coupon i,
  298. it becomes
  299. (2)        C(n)=int_0^infty [1-prod_{i=1}^n (1-exp(-p_i*t))] dt
  300. which reduces to (1) when p_i=1/n (An easy exercise).
  301. In the equal probabilities case  C(n)~n log(n). For a Zipf law,
  302. from (2), we have C(n)~n log^2(n).
  303.  
  304. A related problem is the "BIRTHDAY PARADOX" familiar to people
  305. interested in hashing algorithms: With a party of 23 persons,
  306. you are likely (i.e. with probability >50%) to find two with
  307. the same birthday. The non equiprobable case was solved by:
  308.     M. Klamkin and D. Newman, Extensions of the birthday
  309.     surprise, J. Comb. Th. 3 (1967), 279-282.
  310.  
  311. ==> probability/darts.p <==
  312. Peter throws two darts at a dartboard, aiming for the center.  The
  313. second dart lands farther from the center than the first.  If Peter now
  314. throws another dart at the board, aiming for the center, what is the
  315. probability that this third throw is also worse (i.e., farther from 
  316. the center) than his first?  Assume Peter's skilfulness is constant.
  317.  
  318. ==> probability/darts.s <==
  319. Since the three darts are thrown independently,
  320. they each have a 1/3 chance of being the best throw.  As long as the
  321. third dart is not the best throw, it will be worse than the first dart.
  322. Therefore the answer is 2/3.
  323.  
  324. Ranking the three darts' results from A (best) to C
  325. (worst), there are, a priori, six equiprobable outcomes.
  326.  
  327. possibility #    1    2    3    4    5    6
  328. 1st throw    A    A    B    B    C    C
  329. 2nd throw    B    C    A    C    A    B
  330. 3rd throw    C    B    C    A    B    A
  331.  
  332. The information from the first two throws shows us that the first
  333. throw will not be the worst, nor the second throw the best.  Thus
  334. possibilities 3, 5 and 6 are eliminated, leaving three equiprobable
  335. cases, 1, 2 and 4.  Of these, 1 and 2 have the third throw worse than
  336. the first; 4 does not.  Again the answer is 2/3.
  337.  
  338. ==> probability/derangement.p <==
  339. 12 men leave their hats with the hat check.  If the hats are randomly
  340. returned, what is the probability that nobody gets the correct hat?
  341.  
  342. ==> probability/derangement.s <==
  343. Suppose we are handing out hats to n people.  First we start with all
  344. the possible outcomes.  Then we subtract off those that assign the
  345. right hat to a given person, for each of the n people.  But this
  346. double-counts each outcome that assigned 2 hats correctly, so we have
  347. to add those outcomes back in.  But now we've counted one net copy of
  348. each outcome with 3 correct hats in our set, so we have to subtract
  349. those off again.  But now we've taken away each 4-correct-hat outcome
  350. once too often, and have to put it back in, and so forth ... until we
  351. add or subtract the outcome that involves all n people getting the
  352. correct hats.
  353.  
  354. Putting it all in probabilities, the measure of the original set is 1.
  355. For a given subset of k people, the probability that they all get
  356. their correct hats is (n-k)!/n!, while there are (n choose k) such
  357. subsets of k people altogether.  But then
  358.  
  359.    (n choose k)*(n-k)!/n! = (n!/((n-k)!*k!))*(n-k)!/n! = 1/k!
  360.  
  361. is the total probability measure we get by counting each subset of k
  362. people once each.  So we end up generating the finite series
  363.  
  364.    1 - 1/1! + 1/2! - 1/3! +- ... +/- 1/n!
  365.  
  366. which is of course just the first n+1 terms of the Taylor series
  367. expansion for f(x) = e^x centered at 0 and evaluated at -1, which
  368. converges to 1/e quite fast.  You can compute the exact probability for
  369. any n >= 1 simply by rounding n!/e to the nearest whole number, then
  370. dividing again by n!.  Moreover I think you will find you are always
  371. rounding down for odd n and rounding up for even n.
  372.  
  373. For example,
  374.  
  375.    12! / e = 176214840.95798...
  376.  
  377. which is within 0.05 (absolute error, not relative) of the correct
  378. intermediate result, 176214841.
  379.  
  380. Another fact is that if you set the probability of no matching hats
  381. equal to m/n!, then m is an integer divisible by (n-1).  That's
  382. because the number of ways you can give hat #2 to person #1 is exactly
  383. the same as the number of ways you can give that person hat #3,
  384. likewise for hat #4, and so forth.
  385.  
  386. -- David Karr (karr@cs.cornell.edu)
  387.  
  388. ==> probability/family.p <==
  389. Suppose that it is equally likely for a pregnancy to deliver
  390. a baby boy as it is to deliver a baby girl.  Suppose that for a
  391. large society of people, every family continues to have children
  392. until they have a boy, then they stop having children.
  393. After 1,000 generations of families, what is the ratio of males
  394. to females?
  395.  
  396. ==> probability/family.s <==
  397. The ratio will be 50-50 in both cases.  We are not killing off any
  398. fetuses or babies, and half of all conceptions will be male, half
  399. female.  When a family decides to stop does not affect this fact.
  400.  
  401. ==> probability/flips/once.in.run.p <==
  402. What are the odds that a run of one H or T (i.e., THT or HTH) will occur
  403. in n flips of a fair coin?
  404.  
  405. ==> probability/flips/once.in.run.s <==
  406. References:
  407.     John P. Robinson, Transition Count and Syndrome are Uncorrelated, IEEE
  408.     Transactions on Information Theory, Jan 1988.
  409.  
  410. First we define a function or enumerator P(n,k) as the number of length
  411. "n" sequences that generate "k" successes.  For example,
  412.  
  413.      P(4,1)= 4  (HHTH, HTHH, TTHT, and THTT are 4 possible length 4 sequences).
  414.  
  415. I derived two generating functions g(x) and h(x) in order to enumerate
  416. P(n,k), they are compactly represented by the following matrix
  417. polynomial.
  418.  
  419.  
  420.             _    _      _     _           _   _
  421.        | g(x) |    | 1   1 | (n-3)   |  4  |
  422.        |      | =  |       |         |     | 
  423.        | h(x) |    | 1   x |         |2+2x |    
  424.            |_    _|    |_     _|         |_   _|
  425.  
  426. The above is expressed as matrix generating function.  It can be shown
  427. that P(n,k) is the coefficient of the x^k in the polynomial
  428. (g(x)+h(x)).
  429.  
  430. For example, if n=4 we get (g(x)+h(x)) from the matrix generating
  431. function as (10+4x+2x^2).  Clearly, P(4,1) (coefficient of x) is 4 and
  432. P(4,2)=2 ( There are two such sequences THTH, and HTHT).
  433.  
  434. We can show that
  435.  
  436.    mean(k) = (n-2)/4 and sd= square_root(5n-12)/4
  437.  
  438. We need to generate "n" samples. This can be done by using sequences of length
  439. (n+2).  Then our new statistics would be
  440.  
  441.    mean = n/4
  442.  
  443.    sd = square_root(5n-2)/4
  444.  
  445. Similar approach can be followed for higher dimensional cases.
  446.  
  447. ==> probability/flips/twice.in.run.p <==
  448. What is the probability in n flips of a fair coin that there will be two
  449. heads in a row?
  450.  
  451. ==> probability/flips/twice.in.run.s <==
  452. Well, the question is then how many strings of n h's and t's contain
  453. hh?  I would guess right off hand that its going to be easier to
  454. calculate the number of strings that _don't_ contain hh and then
  455. subtract that from the total number of strings.
  456.  
  457. So we want to count the strings of n h's and t's with no hh in them.
  458. How many h's and t's can there be? It is fairly clear that there must
  459. be from 0 to n/2 h's, inclusive. (If there were (n/2+1) then there
  460. would have to be two touching.)
  461.  
  462. How many strings are there with 0 h's? 1
  463.  
  464. How many strings are there with 1 h? Well, there are (n-1) t's, so
  465. there are a total of n places to put the one h. So the are nC1 such
  466. strings.  How many strings are there with 2 h's? Well, there are (n-1)
  467. places to put the two h's, so there are (n-1)C2 such strings.
  468.  
  469. Finally, with n/2 h's there are (n/2+1) places to put them, so there
  470. are (n/2+1)C(n/2) such strings.
  471.  
  472. Therefore the total number of strings is
  473. Sum (from i=0 to n/2) of (n-i+1)C(i)
  474.  
  475. Now, here's where it get's interesting. If we play around with Pascal's
  476. triangle for a while, we see that this sum equals none other than the
  477. (n+2)th Fibonacci number.
  478.  
  479. So the probability that n coin tosses will give a hh is:
  480.  
  481. 2^n-f(n+2) 
  482. ----------
  483. 2^n
  484.  
  485. (where f(x) is the xth Fibanocci number (so that f(1) is and f(2) are both 1))
  486.  
  487. ==> probability/flips/unfair.p <==
  488. Generate even odds from an unfair coin.  For example, if you
  489. thought a coin was biased toward heads, how could you get the
  490. equivalent of a fair coin with several tosses of the unfair coin?
  491.  
  492. ==> probability/flips/unfair.s <==
  493. Toss twice.  If both tosses give the same result, repeat this process
  494. (throw out the two tosses and start again).  Otherwise, take the first
  495. of the two results.
  496.  
  497. ==> probability/flips/waiting.time.p <==
  498. Compute the expected waiting time for a sequence of coin flips, or the
  499. probabilty that one sequence of coin flips will occur before another.
  500.  
  501.  
  502. ==> probability/flips/waiting.time.s <==
  503. Here's a C program I had lying around that is relevant to the
  504. current discussion of coin-flipping.  The algorithm is N^3 (for N flips)
  505. but it could certainly be improved.  Compile with 
  506.  
  507.     cc -o flip flip.c -lm
  508.  
  509. -- Guy
  510.  
  511. _________________ Cut here ___________________
  512.  
  513. #include <stdio.h>
  514. #include <math.h>
  515.  
  516. char *progname;              /* Program name */
  517.  
  518. #define NOT(c) (('H' + 'T') - (c))
  519.  
  520.  
  521. /* flip.c -- a program to compute the expected waiting time for a sequence
  522.              of coin flips, or the probabilty that one sequence
  523.              of coin flips will occur before another.
  524.  
  525.     Guy Jacobson, 11/1/90
  526. */
  527.  
  528. main (ac, av) int ac; char **av;
  529. {
  530.     char *f1, *f2, *parseflips ();
  531.     double compute ();
  532.  
  533.     progname = av[0];
  534.  
  535.     if (ac == 2) {
  536.     f1 = parseflips (av[1]);
  537.     printf ("Expected number of flips until %s = %.1f\n",
  538.         f1, compute (f1, NULL));
  539.     }
  540.     else if (ac == 3) {
  541.  
  542.     f1 = parseflips (av[1]);
  543.     f2 = parseflips (av[2]);
  544.  
  545.     if (strcmp (f1, f2) == 0) {
  546.         printf ("Can't use the same flip sequence.\n");
  547.         exit (1);
  548.     }
  549.     printf ("Probability of flipping %s before %s = %.1f%%\n",
  550.         av[1], av[2], compute (f1, f2) * 100.0);
  551.     }
  552.     else
  553.       usage ();
  554. }
  555.  
  556. char *parseflips (s) char *s;
  557. {
  558.     char *f = s;
  559.  
  560.     while (*s)
  561.       if (*s == 'H' || *s == 'h')
  562.     *s++ = 'H';
  563.       else if (*s == 'T' || *s == 't')
  564.     *s++ = 'T';
  565.       else
  566.     usage ();
  567.  
  568.     return f;
  569. }
  570.  
  571. usage ()
  572. {
  573.     printf ("usage: %s {HT}^n\n", progname);
  574.     printf ("\tto get the expected waiting time, or\n");
  575.     printf ("usage: %s s1 s2\n\t(where s1, s2 in {HT}^n for some fixed n)\n",
  576.         progname);
  577.     printf ("\tto get the probability that s1 will occur before s2\n");
  578.     exit (1);
  579. }
  580.  
  581. /*
  582.   compute --  if f2 is non-null, compute the probability that flip
  583.               sequence f1 will occur before f2.  With null f2, compute
  584.           the expected waiting time until f1 is flipped
  585.  
  586.   technique:
  587.  
  588.     Build a DFA to recognize (H+T)*f1 [or (H+T)*(f1+f2) when f2
  589.     is non-null].  Randomly flipping coins is a Markov process on the
  590.     graph of this DFA.  We can solve for the probability that f1 precedes
  591.     f2 or the expected waiting time for f1 by setting up a linear system
  592.     of equations relating the values of these unknowns starting from each
  593.     state of the DFA.  Solve this linear system by Gaussian Elimination.
  594. */
  595.  
  596. typedef struct state {
  597.     char *s;                /* pointer to substring string matched */
  598.     int len;                /* length of substring matched */
  599.     int backup;             /* number of one of the two next states */
  600. } state;
  601.  
  602. double compute (f1, f2) char *f1, *f2;
  603. {
  604.     double solvex0 ();
  605.     int i, j, n1, n;
  606.  
  607.     state *dfa;
  608.     int nstates;
  609.  
  610.     char *malloc ();
  611.  
  612.     n = n1 = strlen (f1);
  613.     if (f2)
  614.     n += strlen (f2); /* n + 1 states in the DFA */
  615.  
  616.     dfa = (state *) malloc ((unsigned) ((n + 1) * sizeof (state)));
  617.  
  618.     if (!dfa) {
  619.     printf ("Ouch, out of memory!\n");
  620.     exit (1);
  621.     }
  622.  
  623.     /* set up the backbone of the DFA */
  624.  
  625.     for (i = 0; i <= n; i++) {
  626.     dfa[i].s = (i <= n1) ? f1 : f2;
  627.     dfa[i].len = (i <= n1) ? i : i - n1;
  628.     }
  629.  
  630.     /* for i not a final state, one next state of i is simply
  631.        i+1 (this corresponds to another matching character of dfs[i].s
  632.        The other next state (the backup state) is now computed.
  633.        It is the state whose substring matches the longest suffix
  634.        with the last character changed */      
  635.        
  636.     for (i = 0; i <= n; i++) {
  637.     dfa[i].backup = 0;
  638.     for (j = 1; j <= n; j++)
  639.       if ((dfa[j].len > dfa[dfa[i].backup].len)
  640.           && dfa[i].s[dfa[i].len] == NOT (dfa[j].s[dfa[j].len - 1])
  641.           && strncmp (dfa[j].s, dfa[i].s + dfa[i].len - dfa[j].len + 1,
  642.               dfa[j].len - 1) == 0)
  643.         dfa[i].backup = j;
  644.     }
  645.  
  646.     /* our dfa has n + 1 states, so build a system n + 1 equations
  647.        in n + 1 unknowns */
  648.  
  649.     eqsystem (n + 1);
  650.  
  651.     for (i = 0; i < n; i++)
  652.       if (i == n1)
  653.     equation (1.0, n1, 0.0, 0, 0.0, 0, -1.0);
  654.       else
  655.     equation (1.0, i, -0.5, i + 1, -0.5, dfa[i].backup, f2 ? 0.0 : -1.0);
  656.     equation (1.0, n, 0.0, 0, 0.0, 0, 0.0);
  657.  
  658.     free (dfa);
  659.  
  660.     return solvex0 ();
  661. }
  662.  
  663.  
  664. /* a simple gaussian elimination equation solver */
  665.  
  666. double *m, **M;
  667. int rank;
  668. int neq = 0;
  669.  
  670. /* create an n by n system of linear equations.  allocate space
  671.    for the matrix m, filled with zeroes and the dope vector M */
  672.  
  673. eqsystem (n) int n;
  674. {
  675.     char *calloc ();
  676.     int i;
  677.  
  678.     m = (double *) calloc (n * (n + 1), sizeof (double));
  679.     M = (double **) calloc (n, sizeof (double *));
  680.  
  681.     if (!m || !M) {
  682.     printf ("Ouch, out of memory!\n");
  683.     exit (1);
  684.     }
  685.  
  686.     for (i = 0; i < n; i++)
  687.       M[i] = &m[i * (n + 1)];
  688.     rank = n;
  689.     neq = 0;
  690. }
  691.  
  692. /* add a new equation a * x_na + b * x_nb + c * x_nc + d = 0.0
  693.    (note that na, nb, and nc are not necessarily all distinct.) */
  694.  
  695. equation (a, na, b, nb, c, nc, d) double a, b, c, d; int na, nb, nc;
  696. {
  697.     double *eq = M[neq++]; /* each row is an equation */
  698.     eq[na + 1] += a;
  699.     eq[nb + 1] += b;
  700.     eq[nc + 1] += c;
  701.     eq[0] = d;             /* column zero holds the constant term */
  702. }
  703.  
  704. /* solve for the value of variable x_0.  This will go nuts if
  705.    therer are errors (for example, if m is singular) */
  706.  
  707. double solvex0 ()
  708. {
  709.     register i, j, jmax, k;
  710.     register double  max, val;
  711.     register double *maxrow, *row;
  712.  
  713.  
  714.     for (i = rank; i > 0; --i) {      /* for each variable */
  715.  
  716.         /* find pivot element--largest value in ith column*/
  717.     max = 0.0;
  718.     for (j = 0; j < i; j++)
  719.         if (fabs (M[j][i]) > fabs (max)) {
  720.         max = M[j][i];
  721.         jmax = j;
  722.         }
  723.     /* swap pivot row with last row using dope vectors */
  724.     maxrow = M[jmax];
  725.     M[jmax] = M[i - 1];
  726.     M[i - 1] = maxrow;
  727.  
  728.     /* normalize pivot row */
  729.     max = 1.0 / max;
  730.     for (k = 0; k <= i; k++)
  731.       maxrow[k] *= max;
  732.  
  733.     /* now eliminate variable i by subtracting multiples of pivot row */
  734.     for (j = 0; j < i - 1; j++) {
  735.         row = M[j];
  736.         if (val = row[i])              /* if variable i is in this eq */
  737.         for (k = 0; k <= i; k++)
  738.           row[k] -= maxrow[k] * val;
  739.     }
  740.     }
  741.  
  742.     /* the value of x0 is now in constant column of first row
  743.        we only need x0, so no need to back-substitute */
  744.  
  745.     val = -M[0][0];
  746.  
  747.     free (M);
  748.     free (m);
  749.  
  750.     return val;
  751. }
  752.  
  753. _________________________________________________________________
  754. Guy Jacobson   (201) 582-6558              AT&T Bell Laboratories
  755.         uucp:  {att,ucbvax}!ulysses!guy       600 Mountain Avenue
  756.     internet:  guy@ulysses.att.com         Murray Hill NJ, 07974
  757.  
  758.  
  759.  
  760. ==> probability/flush.p <==
  761. Which set contains proportionately more flushes than the set of all
  762. possible poker hands?
  763. (1) Hands whose first card is an ace
  764. (2) Hands whose first card is the ace of spades
  765. (3) Hands with at least one ace
  766. (4) Hands with the ace of spades
  767.  
  768. ==> probability/flush.s <==
  769. An arbitrary hand can have two aces but a flush hand can't.  The
  770. average number of aces that appear in flush hands is the same as the
  771. average number of aces in arbitrary hands, but the aces are spread out
  772. more evenly for the flush hands, so set #3 contains a higher fraction
  773. of flushes.
  774.  
  775. Aces of spades, on the other hand, are spread out the same way over
  776. possible hands as they are over flush hands, since there is only one of
  777. them in the deck.  Whether or not a hand is flush is based solely on a
  778. comparison between different cards in the hand, so looking at just one
  779. card is necessarily uninformative.  So the other sets contain the same
  780. fraction of flushes as the set of all possible hands.
  781.  
  782. ==> probability/hospital.p <==
  783. A town has two hospitals, one big and one small.  Every day the big
  784. hospital delivers 1000 babies and the small hospital delivers 100
  785. babies.  There's a 50/50 chance of male or female on each birth.
  786. Which hospital has a better chance of having the same number of boys
  787. as girls?
  788.  
  789. ==> probability/hospital.s <==
  790. The small one.  If there are 2N babies born, then the probability of an
  791. even split is
  792.  
  793. (2N choose N) / (2 ** 2N) ,
  794.  
  795. where (2N choose N) = (2N)! / (N! * N!) .
  796.  
  797. This is a DECREASING function.
  798.  
  799. If there are two babies born, then the probability of a split is 1/2
  800. (just have the second baby be different from the first).  With 2N
  801. babies, If there is a N,N-1 split in the first 2N-1, then there is a
  802. 1/2 chance of the last baby making it an even split.  Otherwise there
  803. can be no even split.  Therefore the probability is less than 1/2
  804. overall for an even split.
  805.  
  806. As N goes to infinity the probability of an even split approaches zero
  807. (although it is still the most likely event).
  808.  
  809. ==> probability/icos.p <==
  810. The "house" rolls two 20-sided dice and the "player" rolls one
  811. 20-sided die.  If the player rolls a number on his die between the
  812. two numbers the house rolled, then the player wins.  Otherwise, the
  813. house wins (including ties).  What are the probabilities of the player
  814. winning?
  815.  
  816. ==> probability/icos.s <==
  817. It is easily seen that if any two of the three dice agree that the
  818. house wins.  The probability that this does not happen is 19*18/(20*20).
  819. If the three numbers are different, the probability of winning is 1/3.
  820. So the chance of winning is 19*18/(20*20*3) = 3*19/200 = 57/200.
  821.  
  822. ==> probability/intervals.p <==
  823. Given two random points x and y on the interval 0..1, what is the average
  824. size of the smallest of the three resulting intervals?
  825.  
  826. ==> probability/intervals.s <==
  827. In between these positions the surface forms a series of planes.
  828. Thus the volume under it consists of 2 pyramids each with an
  829. altitude of 1/3 and an (isosceles triangular) base of area 1/2,
  830. yielding a total volume of 1/9.
  831.  
  832. ==> probability/killers.and.pacifists.p <==
  833. You enter a town that has K killers and P pacifists.  When a
  834. pacifist meets a pacifist, nothing happens.  When a pacifist meets a
  835. killer, the pacifist is killed.  When two killers meet, both die.
  836. Assume meetings always occur between exactly two persons and the pairs
  837. involved are completely random.  What are your odds of survival?
  838.  
  839. ==> probability/killers.and.pacifists.s <==
  840. Regardless of whether you are a pacifist or a killer, you may disregard
  841. all events in which a pacifist other than yourself is involved and
  842. consider only events in which you are killed or a pair of killers other
  843. than yourself is killed.
  844.  
  845. Thus we may assume that there are N killers and yourself.  If N is odd,
  846. your odds of surviving are zero.  If N is even, it doesn't matter to
  847. you whether you are a killer or not.  So WLOG assume you are.  Then your
  848. probability of survival is 1/(N+1).
  849.  
  850. ==> probability/leading.digit.p <==
  851. What is the probability that the ratio of two random reals starts with a 1?
  852. What about 9?
  853.  
  854. ==> probability/leading.digit.s <==
  855. What is the distribution of y/x for (x,y) chosen with uniform distribution
  856. from the unit square?
  857.  
  858. First you want y/x in one of the intervals ... [0.01,0.02), [0.1,0.2),
  859. [1,2), [10/20), ... .  This corresponds to (x,y) lying in one of
  860. several triangles with height 1 and bases on either the right or top
  861. edges of the square.  The bases along the right edge have lengths 0.1
  862. (for 0.1 <= y/x < 0.2), 0.01, 0.001, ... ; the sum of this series is
  863. 1/9.  The bases along the top edge have lengths 0.5 (for 0.5 < x/y <=
  864. 1), 0.05, 0.005, ... ; the sum of this series is 5/9.  So you have a
  865. total base length of 6/9 = 2/3, height 1, so the area is 1/3.  The
  866. total area of the square is 1/3, so the probability that y/x starts
  867. with a 1 is 1/3 ~= 0.333333.
  868.  
  869. In the second case you have the same lengths (but in different places)
  870. on the right edge, total 1/9.  But on the top edge, 9 <= y/x < 10 gives
  871. you 1/10 < x/y <= 1/9 gives you a base of length 1/9 - 1/10 = 1/90,
  872. and the series proceeds 1/900, 1/9000, ... ; the sum is 1/81.  Total
  873. base length then is 9/81 + 1/81 = 10/81, height 1, total area (and
  874. hence probability of a leading 9) is 5/81 ~= 0.061728.
  875.  
  876.  
  877. ==> probability/lights.p <==
  878. Waldo and Basil are exactly m blocks west and n blocks north from
  879. Central Park, and always go with the green light until they run out of
  880. options.  Assuming that the probability of the light being green is 1/2
  881. in each direction, that if the light is green in one direction it is
  882. red in the other, and that the lights are not synchronized, find the
  883. expected number of red lights that Waldo and Basil will encounter.
  884.  
  885. ==> probability/lights.s <==
  886. Let E(m,n) be this number, and let (x)C(y) = x!/(y! (x-y)!).  A model
  887. for this problem is the following nxm grid:
  888.  
  889.      ^         B---+---+---+ ... +---+---+---+ (m,0)
  890.      |         |   |   |   |     |   |   |   |
  891.      N         +---+---+---+ ... +---+---+---+ (m,1)
  892. <--W + E-->    :   :   :   :     :   :   :   :
  893.      S         +---+---+---+ ... +---+---+---+ (m,n-1)
  894.      |         |   |   |   |     |   |   |   |
  895.      v         +---+---+---+ ... +---+---+---E (m,n)
  896.  
  897. where each + represents a traffic light.  We can consider each
  898. traffic light to be a direction pointer, with an equal chance of
  899. pointing either east or south.
  900.  
  901. IMHO, the best way to approach this problem is to ask:  what is the
  902. probability that edge-light (x,y) will be the first red edge-light
  903. that the pedestrian encounters?  This is easy to answer; since the
  904. only way to reach (x,y) is by going south x times and east y times,
  905. in any order, we see that there are (x+y)C(x) possible paths from
  906. (0,0) to (x,y).  Since each of these has probability (1/2)^(x+y+1)
  907. of occuring, we see that the the probability we are looking for is
  908. (1/2)^(x+y+1)*(x+y)C(x).  Multiplying this by the expected number
  909. of red lights that will be encountered from that point, (n-k+1)/2,
  910. we see that
  911.  
  912.             m-1
  913.            -----
  914.            \
  915. E(m,n) =    >    ( 1/2 )^(n+k+1) * (n+k)C(n) * (m-k+1)/2
  916.            /
  917.            -----
  918.             k=0
  919.  
  920.             n-1
  921.            -----
  922.            \
  923.       +     >    ( 1/2 )^(m+k+1) * (m+k)C(m) * (n-k+1)/2 .
  924.            /
  925.            -----
  926.             k=0
  927.  
  928.  
  929. Are we done?  No!  Putting on our Captain Clever Cap, we define
  930.  
  931.             n-1
  932.            -----
  933.            \
  934. f(m,n) =    >    ( 1/2 )^k * (m+k)C(m) * k 
  935.            /
  936.            -----
  937.             k=0
  938.  
  939. and
  940.  
  941.             n-1
  942.            -----
  943.            \
  944. g(m,n) =    >    ( 1/2 )^k * (m+k)C(m) .
  945.            /
  946.            -----
  947.             k=0
  948.  
  949. Now, we know that
  950.  
  951.              n
  952.            -----
  953.            \
  954. f(m,n)/2 =  >    ( 1/2 )^k * (m+k-1)C(m) * (k-1) 
  955.            /
  956.            -----
  957.             k=1
  958.  
  959. and since f(m,n)/2 = f(m,n) - f(m,n)/2, we get that
  960.  
  961.             n-1
  962.            -----
  963.            \
  964. f(m,n)/2 =  >    ( 1/2 )^k * ( (m+k)C(m) * k - (m+k-1)C(m) * (k-1) )
  965.            /
  966.            -----
  967.             k=1
  968.  
  969. - (1/2)^n * (m+n-1)C(m) * (n-1)
  970.  
  971.             n-2
  972.            -----
  973.            \
  974.  =          >    ( 1/2 )^(k+1) * (m+k)C(m) * (m+1)
  975.            /
  976.            -----
  977.             k=0
  978.  
  979. - (1/2)^n * (m+n-1)C(m) * (n-1)
  980.  
  981. = (m+1)/2 * (g(m,n) - (1/2)^(n-1)*(m+n-1)C(m)) - (1/2)^n*(m+n-1)C(m)*(n-1)
  982.  
  983. therefore
  984.  
  985. f(m,n) = (m+1) * g(m,n) - (n+m) * (1/2)^(n-1) * (m+n-1)C(m) .
  986.  
  987.  
  988. Now, E(m,n) = (n+1) * (1/2)^(m+2) * g(m,n) - (1/2)^(m+2) * f(m,n)
  989.  
  990. + (m+1) * (1/2)^(n+2) * g(n,m) - (1/2)^(n+2) * f(n,m)
  991.  
  992. = (m+n) * (1/2)^(n+m+1) * (m+n)C(m) + (m-n) * (1/2)^(n+2) * g(n,m)
  993.  
  994. + (n-m) * (1/2)^(m+2) * g(m,n) .
  995.  
  996.  
  997. Setting m=n in this formula, we see that
  998.  
  999.            E(n,n) = n * (1/2)^(2n) * (2n)C(n),
  1000.  
  1001. and applying Stirling's theorem we get the beautiful asymptotic formula
  1002.  
  1003.                   E(n,n) ~ sqrt(n/pi).
  1004.  
  1005. ==> probability/lottery.p <==
  1006. There n tickets in the lottery, k winners and m allowing you to pick another
  1007. ticket. The problem is to determine the probability of winning the lottery
  1008. when you start by picking 1 (one) ticket.
  1009.  
  1010. A lottery has N balls in all, and you as a player can choose m numbers
  1011. on each card, and the lottery authorities then choose n balls, define
  1012. L(N,n,m,k) as the minimum number of cards you must purchase to ensure that
  1013. at least one of your cards will have at least k numbers in common with the
  1014. balls chosen in the lottery.
  1015.  
  1016. ==> probability/lottery.s <==
  1017. This relates to the problem of rolling a random number
  1018. from 1 to 17 given a 20 sided die.  You simply mark the numbers 18,
  1019. 19, and 20 as "roll again".
  1020.  
  1021. The probability of winning is, of course, k/(n-m) as for every k cases
  1022. in which you get x "draw again"'s before winning, you get n-m-k similar
  1023. cases where you get x "draw again"'s before losing.  The example using
  1024. dice makes it obvious, however.
  1025.  
  1026. L(N,k,n,k) >= Ceiling((N-choose-k)/(n-choose-k)*
  1027.                    (n-1-choose-k-1)/(N-1-choose-k-1)*L(N-1,k-1,n-1,k-1))
  1028.             = Ceiling(N/n*L(N-1,k-1,n-1,k-1))
  1029.  
  1030. The correct way to see this is as follows:  Suppose you have an
  1031. (N,k,n,k) system of cards.  Look at all of the cards that contain the
  1032. number 1.  They cover all ball sets that contain 1, and therefore these
  1033. cards become an (N-1,k-1,n-1,k-1) covering upon deletion of the number
  1034. 1.  Therefore the number 1 must appear at least L(N-1,k-1,n-1,k-1).
  1035. The same is true of all of the other numbers.  There are N of them but
  1036. n appear on each card.  Thus we obtain the bound.
  1037.  
  1038. ==> probability/oldest.girl.p <==
  1039. You meet a stranger on the street, and ask how many children he has.  He
  1040. truthfully says two.  You ask "Is the older one a girl?"  He truthfully
  1041. says yes.  What is the probability that both children are girls?  What
  1042. would the probability be if your second question had been "Is at least
  1043. one of them a girl?", with the other conditions unchanged?
  1044.  
  1045. ==> probability/oldest.girl.s <==
  1046. There are four possibilities:
  1047.  
  1048.     Oldest child    Youngest child
  1049. 1.  Girl            Girl
  1050. 2.  Girl            Boy
  1051. 3.  Boy             Girl
  1052. 4.  Boy             Boy
  1053.  
  1054. If your friend says "My oldest child is a girl," he has eliminated cases
  1055. 3 and 4, and in the remaining cases both are girls 1/2 of the time.  If
  1056. your friend says "At least one of my children is a girl," he has
  1057. eliminated case 4 only, and in the remaining cases both are girls 1/3
  1058. of the time.
  1059.  
  1060.  
  1061. ==> probability/particle.in.box.p <==
  1062. A particle is bouncing randomly in a two-dimensional box.  How far does it
  1063. travel between bounces, on average?
  1064.  
  1065. Suppose the particle is initially at some random position in the box and is
  1066. traveling in a straight line in a random direction and rebounds normally
  1067. at the edges.
  1068.  
  1069. ==> probability/particle.in.box.s <==
  1070. Let theta be the angle of the point's initial vector.  After traveling a
  1071. distance r, the point has moved r*cos(theta) horizontally and r*sin(theta)
  1072. vertically, and thus has struck r*(sin(theta)+cos(theta))+O(1) walls.  Hence
  1073. the average distance between walls will be 1/(sin(theta)+cos(theta)).  We now
  1074. average this over all angles theta:
  1075.     2/pi * intg from theta=0 to pi/2 (1/(sin(theta)+cos(theta))) dtheta
  1076. which (in a computation which is left as an exercise) reduces to
  1077.     2*sqrt(2)*ln(1+sqrt(2))/pi = 0.793515.
  1078.  
  1079. ==> probability/pi.p <==
  1080. Are the digits of pi random (i.e., can you make money betting on them)?
  1081.  
  1082. ==> probability/pi.s <==
  1083. No, the digits of pi are not truly random, therefore you can win money
  1084. playing against a supercomputer that can calculate the digits of pi far
  1085. beyond what we are currently capable of doing.  This computer selects a
  1086. position in the decimal expansion of pi -- say, at 10^100.  Your job is
  1087. to guess what the next digit or digit sequence is.  Specifically, you
  1088. have one dollar to bet.  A bet on the next digit, if correct, returns
  1089. 10 times the amount bet; a bet on the next two digits returns 100 times
  1090. the amount bet, and so on.  (The dollar may be divided in any fashion,
  1091. so we could bet 1/3 or 1/10000 of a dollar.)  You may place bets in any
  1092. combination.  The computer will tell you the position number, let you
  1093. examine the digits up to that point, and calculate statistics for you.
  1094.  
  1095. It is easy to set up strategies that might win, if the supercomputer
  1096. doesn't know your strategy.  For example, "Always bet on 7" might win,
  1097. if you are lucky.  Also, it is easy to set up bets that will always
  1098. return a dollar.  For example, if you bet a penny on every two-digit
  1099. sequence, you are sure to win back your dollar.  Also, there are
  1100. strategies that might be winning, but we can't prove it.  For example,
  1101. it may be that a certain sequence of digits never occurs in pi, but we
  1102. have no way of proving this.
  1103.  
  1104. The problem is to find a strategy that you can prove will always win
  1105. back more than a dollar.
  1106.  
  1107. The assumption that the position is beyond the reach of calculation
  1108. means that we must rely on general facts we know about the sequence of
  1109. digits of pi, which is practically nil.  But it is not completely nil,
  1110. and the challenge is to find a strategy that will always win money.
  1111.  
  1112. A theorem of Mahler (1953) states that for all integers p, q > 1,
  1113.  
  1114.         -42
  1115.   |pi - p/q| > q
  1116.  
  1117. This says that pi cannot have a rational approximation that is
  1118. extremely tight.
  1119.  
  1120. Now suppose that the computer picks position N.  I know that the next
  1121. 41 * N digits cannot be all zero.   For if they were, then the first N
  1122. digits, treated as a fraction with denominator 10^N, satisfies:
  1123.  
  1124.   |pi - p / 10^N|  <  10^(-42 N)
  1125.  
  1126. which contradicts Mahler's theorem.
  1127.  
  1128. So, I split my dollar into 10^(41N) - 1 equal parts, and bet on each of
  1129. the sequences of 41N digits, except the one with all zeroes.  One of
  1130. the bets is sure to win, so my total profit is about 10(^-41N) of a
  1131. dollar!
  1132.  
  1133. This strategy can be improved a number of ways, such as looking for
  1134. other repeating patterns, or improvements to the bound of 42 -- but the
  1135. earnings are so pathetic, it hardly seems worth the effort.
  1136.  
  1137. Are there other winning strategies, not based on Mahler's theorem?  I
  1138. believe there are algorithms that generate 2N binary digits of pi,
  1139. where the computations are separate for each block of N digits.  Maybe
  1140. from something like this, we can find a simple subsequence of the
  1141. binary digits of pi which is always zero, or which has some simple
  1142. pattern.
  1143.  
  1144. ==> probability/random.walk.p <==
  1145. Waldo has lost his car keys!  He's not using a very efficient search;
  1146. in fact, he's doing a random walk.  He starts at 0, and moves 1 unit
  1147. to the left or right, with equal probability.  On the next step, he
  1148. moves 2 units to the left or right, again with equal probability.  For
  1149. subsequent turns he follows the pattern 1, 2, 1, etc.
  1150.  
  1151. His keys, in truth, were right under his nose at point 0.  Assuming
  1152. that he'll spot them the next time he sees them, what is the
  1153. probability that poor Waldo will eventually return to 0?
  1154.  
  1155. ==> probability/random.walk.s <==
  1156. I can show the probability that Waldo returns to 0 is 1.  Waldo's
  1157. wanderings map to an integer grid in the plane as follows.  Let
  1158. (X_t,Y_t) be the cumulative sums of the length 1 and length 2 steps
  1159. respectively taken by Waldo through time t.  By looking only at even t,
  1160. we get the ordinary random walk in the plane, which returns to the
  1161. origin (0,0) with probability 1.  In fact, landing at (2n, n) for any n
  1162. will land Waldo on top of his keys too.  There's no need to look at odd
  1163. t.
  1164.  
  1165. Similar considerations apply for step sizes of arbitrary (fixed) size.
  1166.  
  1167. ==> probability/reactor.p <==
  1168. There is a reactor in which a reaction is to take place. This reaction
  1169. stops if an electron is present in the reactor. The reaction is started
  1170. with 18 positrons; the idea being that one of these positrons would
  1171. combine with any incoming electron (thus destroying both). Every second,
  1172. exactly one particle enters the reactor. The probablity that this particle   
  1173. is an electron is 0.49 and that it is a positron is 0.51.
  1174.  
  1175. What is the probability that the reaction would go on for ever?
  1176.  
  1177. Note: Once the reaction stops, it cannot restart.
  1178.  
  1179. ==> probability/reactor.s <==
  1180. Let P(n) be the probability that, starting with n positrons, the
  1181. reaction goes on forever.  Clearly P'(n+1)=P'(0)*P'(n), where the
  1182. ' indicates probabilistic complementation; also note that
  1183. P'(n) = .51*P'(n+1) + .49*P'(n-1).  Hence we have that P(1)=(P'(0))^2
  1184. and that P'(0) = .51*P'(1) ==> P'(0) equals 1 or 49/51.  We thus get
  1185. that either P'(18) = 1 or (49/51)^19 ==> P(18) = 0 or 1 - (49/51)^19.
  1186.  
  1187. The answer is indeed the latter.  A standard result in random walks
  1188. (which can be easily derived using Markov chains) yields that if p>1/2
  1189. then the probability of reaching the absorbing state at +infinity
  1190. as opposed to the absorbing state at -1 is 1-r^(-i), where r=p/(1-p)
  1191. (p is the probability of moving from state n to state n-1, in our
  1192. case .49) and i equals the starting location + 1.  Therefore we have
  1193. that P(18) = 1-(.49/.51)^19.
  1194.  
  1195. ==> probability/roulette.p <==
  1196. You are in a game of Russian roulette, but this time the gun (a 6
  1197. shooter revolver) has three bullets _in_a_row_ in three of the
  1198. chambers.  The barrel is spun only once.  Each player then points the
  1199. gun at his (her) head and pulls the trigger.  If he (she) is still
  1200. alive, the gun is passed to the other player who then points it at his
  1201. (her) own head and pulls the trigger.  The game stops when one player
  1202. dies.
  1203.  
  1204. Now to the point:  would you rather be first or second to shoot?
  1205.  
  1206. ==> probability/roulette.s <==
  1207. All you need to consider are the six possible bullet configurations
  1208.  
  1209.     B B B E E E         -> player 1 dies
  1210.     E B B B E E         -> player 2 dies
  1211.     E E B B B E         -> player 1 dies
  1212.     E E E B B B         -> player 2 dies
  1213.     B E E E B B         -> player 1 dies
  1214.     B B E E E B         -> player 1 dies
  1215.  
  1216. One therefore has a 2/3 probability of winning (and a 1/3 probability of
  1217. dying) by shooting second.  I for one would prefer this option.
  1218.  
  1219. ==> probability/transitivity.p <==
  1220. Can you number dice so that die A beats die B beats die C beats die A?
  1221. What is the largest probability p with which each event can occur?
  1222.  
  1223. ==> probability/transitivity.s <==
  1224. Yes.  The actual values on the dice faces don't matter, only their
  1225. ordering.  WLOG we may assume that no two faces of the same or
  1226. different dice are equal.  We can assume "generalised dice", where the
  1227. faces need not be equally probable.  These can be approximated by dice
  1228. with equi-probable faces by having enough faces and marking some of
  1229. them the same.
  1230.  
  1231. Take the case of three dice, called A, B, and C.  Picture the different
  1232. values on the faces of the A die.  Suppose there are three:
  1233.  
  1234.             A       A       A
  1235.  
  1236. The values on the B die must lie in between those of the A die:
  1237.  
  1238.         B   A   B   A   B   A   B
  1239.  
  1240. With three different A values, we need only four different B values.
  1241.  
  1242. Similarly, the C values must lie in between these:
  1243.  
  1244.       C B C A C B C A C B C A C B C
  1245.       
  1246. Assume we want A to beat B, B to beat C, and C to beat A.  Then the above
  1247. scheme for the ordering of values can be simplified to:
  1248.  
  1249.       B C A B C A B C A B C
  1250.  
  1251. since for example, the first C in the previous arrangement can be moved
  1252. to the second with the effect that the probability that B beats C is
  1253. increased, and the probabilities that C beats A or A beats B are
  1254. unchanged.  Similarly for the other omitted faces.
  1255.  
  1256. In general we obtain for n dice A...Z the arrangement
  1257.  
  1258.     B ... Z A B ... Z ...... A B ... Z
  1259.  
  1260. where there are k complete cycles of B..ZA followed by B...Z.  k must be
  1261. at least 1.
  1262.  
  1263. CONJECTURE:  The optimum can be obtained for k=1.
  1264.  
  1265. So the arrangement of face values is B ... Z A B ... Z.  For three dice
  1266. it is BCABC.  Thus one die has just one face, all the other dice have two
  1267. (with in general different probabilities).
  1268.  
  1269. CONJECTURE:  At the optimum, the probabilities that each die beats the
  1270. next can be equal.
  1271.  
  1272. Now put probabilities into the BCABC arrangement:
  1273.  
  1274.     B  C  A  B  C
  1275.     x  y  1  x' y'
  1276.  
  1277. Clearly x+x' = y+y' = 1.
  1278.  
  1279. Prob. that A beats B = x'
  1280.            B beats C = x + x'y'
  1281.            C beats A = y
  1282.  
  1283. Therefore x' = y = x + x'y'
  1284.  
  1285. Solving for these gives x = y' = 1-y, x' = y = (-1 + sqrt(5))/2 = prob.
  1286. of each die beating the next = 0.618...
  1287.  
  1288. For four dice one obtains the probabilities:
  1289.  
  1290.     B  C  D  A  B  C  D
  1291.     x  y  z  1  x' y' z'
  1292.  
  1293. A beats B:  x'
  1294. B beats C:  x + x'y'
  1295. C beats D:  y + y'z'
  1296. D beats A:  z
  1297.  
  1298. CONJECTURE: for any number of dice, at the optimum, the sequence of
  1299. probabilities abc...z1a'b'c...z' is palindromic.
  1300.  
  1301. We thus have the equalities:
  1302.  
  1303.     x+x' = 1
  1304.     y+y' = 1
  1305.     z+z' = 1
  1306.     x' = z = x + x'y' = x + x'y'
  1307.     y = y' (hence both = 1/2)
  1308.  
  1309. Solving this gives x = 1/3, z = 2/3 = prob. of each die beating the next.
  1310.  Since all the numbers are rational, the limit is attainable with
  1311. finitely many equiprobable faces.  E.g. A has one face, marked 0.  C has
  1312. two faces, marked 2 and -2.  B has three faces, marked 3, -1, -1.  D has
  1313. three faces, marked 1, 1, -3.  Or all four dice can be given six faces,
  1314. marked with numbers in the range 0 to 6.
  1315.  
  1316. Finding the solution for 5, 6, or n dice is left as an exercise.
  1317.  
  1318. --                                  ____
  1319. Richard Kennaway                  __\_ /    School of Information Systems
  1320. Internet:  jrk@sys.uea.ac.uk      \  X/     University of East Anglia
  1321. uucp:  ...mcsun!ukc!uea-sys!jrk    \/       Norwich NR4 7TJ, U.K.
  1322.  
  1323.  
  1324. Martin Gardner (of course!) wrote about notransitive dice, see the Oct '74
  1325. issue of Scientific American, or his book "Wheels, Life and Other Mathematical
  1326. Amusements", ISBN 0-7167-1588-0 or ISBN 0-7167-1589-9 (paperback).
  1327.  
  1328. In the book, Gardner cites Bradley Efron of Stanford U. as stating that
  1329. the maximum number for three dice is approx .618, requiring dice with more
  1330. than six sides.  He also mentions that .75 is the limit approached as the
  1331. number of dice increases.  The book shows three sets of 6-sided dice, where
  1332. each set has 2/3 as the advantage probability.
  1333.  
  1334.